
const path = require('path')

// console.log(__filename);
//1 获取路径中基础名称
/* 
 01 path.basename() 方法会返回 path 的最后一部分
 02 第二个参数表示扩展名，如果说没有设置则返回完整的文件名称带后缀
 03 第二个参数作为后缀时，如果没有在当前路径中匹配到，那么会忽略
 04 处理目录路径的时候如果说，结尾处有路径分割符，则也会忽略
*/
// console.log(path.basename(__filename,".js"));
// console.log(path.basename(__filename,".css"));
// console.log(path.basename("/a/b/c"));
// console.log(path.basename("/a/b/c/"));

//2 获取路径目录名（路径）
/* 
    01 返回路径中最后一个部分的上一层目录所在路径
    
*/
// console.log(path.dirname(__filename));
// console.log(path.dirname("/a/b/c"));
// console.log(path.dirname("/a/b/c/"));

//3 获取路径的扩展名
/* 
   01 返回 path 路径中的扩展名，即 path 的最后一部分中从最后一次出现 .（句点）字符直到字符串结束。 
   02 如果在 path 的最后一部分中没有 .，或者如果 path 的基本名称（参见 path.basename()）除了第一个字符以外没有 .，则返回空字符串。
*/
// console.log(path.extname(__filename));
// console.log(path.extname("/a/b/c"));
// console.log(path.extname("/a/b/index.htm.js.css"));

//4 解析路径
/* 
    01 接收一个路径，返回一个对象，包含不同的信息
    02 root dir base ext name
*/
// const obj = path.parse('/a/b/c/index.html')
// const obj = path.parse('/a/b/c/')
// const obj = path.parse('./a/b/c/')
// console.log(obj);

//5 序列化路径
// const obj = path.parse('./a/b/c/index.html')
// console.log(path.format(obj));

//6 判断当前路径是否为绝对路径
// console.log(path.isAbsolute("foo"));
// console.log(path.isAbsolute("/foo"));

//7 路径的拼接
// console.log(path.join('a/b','c','index.html'));
// console.log(path.join('a/b','c','../','index.html'));

//8 规范化路径
// console.log(path.normalize('a/b/c/d'));

//9 绝对路径
/* 
    resolve([from],to)
*/
console.log(path.resolve());
console.log(path.resolve('/a','b'));
console.log(path.resolve('index.html'));//常见写法